#define _CRT_SECURE_NO_WARNINGS
#include <algorithm>
#include <stack>
#include <string>
using namespace std;
class Solution {
public:
    string removeDuplicates(string s) {
        stack<char> st;
        string str;
        int n = s.size();
        for (int i = 0; i < n; i++)
        {
            if (!st.empty() && st.top() == s[i])
            {
                st.pop();
            }
            else st.push(s[i]);
        }
        while (!st.empty())
        {
            str += st.top();
            st.pop();
        }
        reverse(str.begin(), str.end());
        return str;
    }
};
int main()
{
    Solution().removeDuplicates("abbaca");
    return 0;
}